package com.opal.salescost.source;

public class SalescostThreadLocalDS {
    //ThreadLocal原理就是：相当于封装了一个的map，key是线程的唯一标识，值就是自定义的值(下面定义是String)
    public static final ThreadLocal<String> threadLocalDataSourceKey = new ThreadLocal<>();

    //构造方法：用于往ThreadLocal中封装数据源名称用
    public SalescostThreadLocalDS(String key) {
        System.out.println("更换数据源"+key);
        threadLocalDataSourceKey.set(key);
    }
    //获取目标数据源：其实就只用在第一步中
    public static String getDataSourceRoutingKey() {
        return threadLocalDataSourceKey.get();
    }

    // 删除本地的线程的值
    public void close() {
        threadLocalDataSourceKey.remove();
    }

}
